Navneet Dalal and Bill Triggs, “Histograms of Oriented Gradients for Human Detection”, IEEE Computer Society Conference on Computer Vision and Pattern Recognition, vol 1, page 886-893, 25-26 Jun. 2005; and Navneet Dalal “Finding People in Images and Videos” PhD Thesis, L'institut National Polytechnique De Grenoble, 17 Jul. 2006, disclose Histogram of Oriented Gradient (HOG) descriptors for use in image processing including for object detection and/or classification.
FIG. 1 shows a simple example for calculating a HOG for a localized portion of an image, referred to herein as a cell.
In the example of FIG. 1, a 2×2 pixel cell is employed. Each pixel value is combined with a 3×1 kernel to determine the respective horizontal components of the gradients for the pixels of the cell; and with a 1×3 kernel to determine the vertical components of the gradients for the pixels of the cell. (It will therefore be appreciated that pixel values from a border of one pixel around the 2×2 cell are needed in order to calculate the gradients for each pixel of the cell.) In the example of FIG. 1, the pixels values for the corners of the border, 4, 0, 7 and 4 are shown for information only as these are not required for the exemplary kernels of FIG. 1. However, it will be appreciated that other kernels could be employed which might require these or other pixels.
The horizontal and vertical gradient components are combined to provide vector gradients for each pixel of the cell. Using the gradients, a magnitude and orientation of each pixel gradient for the cell can be calculated. In the example of FIG. 1, the gradients are mapped to one of 8 bins and a HOG can then be determined by counting occurrences of gradient orientation. In the example, 3 vectors are in bin 2 and 1 in bin 3 indicating the gradient for this portion of the image is generally in the direction of bin 2. (This is not shown aligned with the values shown in the sample input image.) The magnitude values for each pixel gradient can then be used to determine the extent of the gradient in that direction.
It is this combination of HOG and magnitude values that is referred to herein as the HOG descriptors for a cell.
In FIG. 1, the pixels values used comprise luminance values, for example, a Y component for a YCC format image. In other implementations, color gradients might also be calculated based on this or other image formats.
As will be seen from the example of FIG. 1, simple applications based on HOG descriptors would require the use of:                multipliers—to calculate the magnitude of the gradients; and        arc tangent function to calculate the orientation of the gradients.        
Clearly optimization of each of these calculations would allow for a more rational implementation for providing HOG descriptors and in particular this would allow for an efficient hardware implementation providing HOG descriptors in devices with limited processing capability such as hand-held cameras or smartphones.
Ryoji Kadota et al, “Hardware Architecture for HOG Feature Extraction”, Proceedings of 5th International Conference on Intelligent Information Hiding and Multimedia Signal Processing, 2009 pages 1330-1333, discloses several methods to simplify the computation of HOG descriptors, such as conversion of the division, square root and arctangent to simpler operations.
Tam Phuong Cao et al, “Implementation of real-time pedestrian detection on FPGA”, Image and Vision Computing New Zealand, 2008, 23rd International Conference, p1-6 discloses dividing gradient orientations into non-uniform angular bins.